<?php

Class ProyectDocumentsController extends AppController {

    public $name = 'ProyectDocuments';

    function edit($id) {
        $this->layout = "ajax";
        $this->ProyectDocument->recursive = -1;
        if (empty($this->data)) {

            $this->data = $this->ProyectDocument->find('first', array('conditions' => array('ProyectDocument.id' => $id), 'fields' => array('ProyectDocument.calificacion', 'ProyectDocument.concepto', 'ProyectDocument.document_id', 'ProyectDocument.proyect_id', 'ProyectDocument.id')));
        } else {

            if ($this->ProyectDocument->saveAll($this->data)) {
                $this->Session->setFlash('Registro editado correctamente', 'flash_custom');
                $this->redirect(array('controller' => 'ProyectDocuments', 'action' => 'index'));
            } else {
                $this->Session->setFlash('Error editando datos');
            }
        }
    }

    function index() {
        $this->layout = "ajax";
        $proyect_id = $this->Session->read('proy_id');
        $this->set('proyect_id', $proyect_id);
        if ($proyect_id == "") {
            $this->Session->setFlash('No ha seleccionado Proyecto');
            $this->redirect(array('controller' => 'Pages', 'action' => 'display'));
        } else {

            $documentos = $this->ProyectDocument->Document->find('all', array('fields' => 'Document.id'));

            foreach ($documentos as $documento) {
                $this->ProyectDocument->recursive = -1;
                if ($this->ProyectDocument->find('first', array('conditions' => array('ProyectDocument.proyect_id' => $proyect_id, 'ProyectDocument.document_id' => $documento['Document']['id'])))) {
                    
                } else {
                    $this->ProyectDocument->create();
                    $datos = array(
                        'ProyectDocument' =>
                        array(
                            'proyect_id' => $proyect_id,
                            'document_id' => $documento['Document']['id']
                        )
                    );

                    if (!$this->ProyectDocument->saveAll($datos)) {
                        $this->Session->setFlash('Error', 'flash_custom');
                    }
                }
            }
            $this->set('proyect_id', $proyect_id);
            $this->paginate = array('ProyectDocument' => array('recursive' => '1', 'maxLimit' => 500, 'limit' => 50, 'fields' => array('Document.descripcion', 'ProyectDocument.calificacion', 'ProyectDocument.concepto', 'ProyectDocument.cerrado', 'ProyectDocument.document_id', 'ProyectDocument.proyect_id', 'ProyectDocument.id')));
            $this->set('ProyectDocuments', $this->paginate(array('ProyectDocument.proyect_id' => $proyect_id)));
        }
    }

    function add() {
        $this->layout = "ajax";
        if (empty($this->data)) {
            
        } else {

            if ($this->ProyectDocument->saveAll($this->data)) {
                $this->Session->setFlash('Registro Adicionado correctamente', 'flash_custom');
                $this->redirect(array('controller' => 'ProyectDocuments', 'action' => 'index'));
            } else {
                $this->Session->setFlash('Error Guardando datos');
            }
        }
    }

    public function report() {
        $this->layout = "csv";
        ini_set('max_execution_time', 600); //increase max_execution_time to 10 min if data set is very large
        //create a file
        $filename = "Reporte_filtro_documental" . date("Y.m.d") . ".csv";
        $csv_file = fopen('php://output', 'w');
        header('Content-type: application/csv');
        header('Content-Disposition: attachment; filename="' . $filename . '"');
        //Configure::write('debug', 0);
        $header_row = array(
            "Código",
            "Departamento de ejecución",
            "Formulario 1: carta de presentación y compromiso - calificación",
            "Formulario 1: carta de presentación y compromiso - concepto",
            "Formulario 2: datos / ficha resumen de la propuesta - calificación",
            "Formulario 2: datos / ficha resumen de la propuesta - concepto",
            "Formulario 3: declaración juramentada de voluntad de negociación del predio - calificación",
            "Formulario 3: declaración juramentada de voluntad de negociación del predio - concepto",
            "Identificación del propietario(cédula de ciudadanía) - calificación",
            "Identificación del propietario(cédula de ciudadanía) - concepto",
            "Certificado de tradición y libertad del predio - calificación",
            "Certificado de tradición y libertad del predio - concepto",
            "Títulos de propiedad (escrituras o resoluciones) - calificación",
            "Títulos de propiedad (escrituras o resoluciones) - concepto",
            "Formulario 6: uso del suelo expedido por la Oficina de Planeación Municipal. - calificación",
            "Formulario 6: uso del suelo expedido por la Oficina de Planeación Municipal. - concepto",
            "Formulario 7: Certificación Ambiental  Corporación Autónoma Regional (SINAP). - calificación",
            "Formulario 7: Certificación Ambiental  Corporación Autónoma Regional (SINAP). - concepto",
            "Formulario 4: ficha de inscripción aspirantes para todas las familias. - calificación",
            "Formulario 4: ficha de inscripción aspirantes para todas las familias. - concepto",
            "Formulario 5: declaración juramentada de la actividad económica de cada una de las familias. - calificación",
            "Formulario 5: declaración juramentada de la actividad económica de cada una de las familias. - concepto",
            "Ficha de visita técnica fase II A mensaje 2 - calificación",
            "Ficha de visita técnica fase II A mensaje 2 - concepto",
            "Avaluó comercial del  (los) predio (s) a adquirir - calificación",
            "Avaluó comercial del  (los) predio (s) a adquirir - concepto",
            "Plano (s) topográfico (s) - calificación",
            "Plano (s) topográfico (s) - concepto",
            "Formulario 8: Proyecto productivo a implementar. - calificación",
            "Formulario 8: Proyecto productivo a implementar. - concepto",
            "Acta de aceptación acompañamiento técnico y social a la fase II - calificación",
            "Acta de aceptación acompañamiento técnico y social a la fase II - concepto",
            "Programación ejecución del proyecto productivo en el predio - calificación",
            "Programación ejecución del proyecto productivo en el predio - concepto",
            "Programación ejecución del proyecto - calificación",
            "Programación ejecución del proyecto - concepto",
            "Ingresos y egresos del proyecto. - calificación",
            "Ingresos y egresos del proyecto. - concepto",
            "Planificación del crédito. - calificación",
            "Planificación del crédito. - concepto",
            "Flujo de caja y cabida familiar. - calificación",
            "Flujo de caja y cabida familiar. - concepto",
            "Resumen ejecutivo del proyecto. - calificación",
            "Resumen ejecutivo del proyecto. - concepto",
            "Ficha de jerarquización de las familias. - calificación",
            "Ficha de jerarquización de las familias. - concepto");

        $newRow = array();

        foreach ($header_row as $a) {
            $newRow[] = iconv('UTF-8', 'Windows-1252', $a);
        }

        fputcsv($csv_file, $newRow, ';', '"');

        //Hacemos la consulta
        $sql = "SELECT proyect.id, proyect.codigo, proyect_document.calificacion, proyect_document.concepto, proyect_document.document_id FROM proyect_documents proyect_document
                LEFT JOIN proyects proyect on proyect.id = proyect_document.proyect_id
                WHERE 1 ORDER BY proyect.id, document_id";

        $results = $this->ProyectDocument->query($sql);

        // Each iteration of this while loop will be a row in your .csv file where each field corresponds to the heading of the column

        $row = array();
        $proyecto = "";
        foreach ($results as $result) {
            if ($proyecto != $result['proyect']['codigo']) {
                if ($proyecto != "")
                    fputcsv($csv_file, $row, ';', '"');

                $row = array();
                $row[] = $result['proyect']['codigo'];
                $proyecto = $result['proyect']['codigo'];

                //Busco el departamento de ejecución de proyecto
                $sql = "SELECT Departament.name
                        FROM properties Property
                        LEFT JOIN proyects Proyect ON Proyect.id = Property.proyect_id
                        LEFT JOIN cities City ON City.id = Property.city_id
                        LEFT JOIN departaments Departament ON Departament.id = City.departament_id
                        WHERE Proyect.id = " . $result['proyect']['id'] . " LIMIT 1";
                $departamento_ejecucion = $this->ProyectDocument->query($sql);
                if (!empty($departamento_ejecucion))
                    $row[] = utf8_decode($departamento_ejecucion[0]['Departament']['name']);
            }
            $row[] = $result['proyect_document']['calificacion'];
            $row[] = $result['proyect_document']['concepto'];
        }

        $newRow = array();

        foreach ($row as $a) {
            $newRow[] = iconv('UTF-8', 'Windows-1252', $a);
        }

        fputcsv($csv_file, $newRow, ';', '"');


        fclose($csv_file);
    }

    function open($proyect_id) {
        if ($this->ProyectDocument->query("UPDATE proyect_documents set cerrado= 0 WHERE proyect_id=" . $proyect_id)) {
            $this->Session->setFlash("El filtro ha sido abierto para edición ", 'flash_custom');
            $this->redirect(array('controller' => 'ProyectDocuments', 'action' => 'index'));
        }
    }

    function close($proyect_id) {
        if ($this->ProyectDocument->query("UPDATE proyect_documents set cerrado= 1 WHERE proyect_id=" . $proyect_id)) {
            $this->Session->setFlash('Filtro cerrado correctamente', 'flash_custom');
            $this->redirect(array('controller' => 'ProyectDocuments', 'action' => 'index'));
        }
    }

}

?>